Many storage systems may provide clients with access to data stored within a plurality of storage devices. For example, a storage controller may store client data within a set of storage devices that are locally accessible (e.g., locally attached to the storage controller) or remotely accessible (e.g., accessible over a network). A storage aggregate (e.g., a composite aggregate comprising a set of volumes) of storage may be generated from the set of storage devices (e.g., the storage aggregate may be stored across one or more storage devices). The storage aggregate may be exported from a storage file system to a client. The storage aggregate may appear as one or more storage containers to the client, such as a volume or logical unit number (lun). In this way, the storage aggregate abstracts away the details, from the client, of how the storage aggregate is physically stored amongst the set of storage devices.
Some storage systems may store data within a multi-tiered storage arrangement. For example, the storage controller may store data within a hard disk drive tier and a solid state storage tier. The hard disk drive tier may be used as a capacity tier to store client data and for processing input/output operations. The solid state storage tier may be used as a cache for accelerating the processing of storage operations. Different storage tiers have different characteristics and behaviors, which can affect performance and guarantees provided to clients by a storage system.
In an example, a storage system may utilize a storage tier (e.g., a local storage tier hosted, owned, and/or managed by one or more nodes of a storage environment associated with the storage system) and a remote object store as two of the storage tiers within which the storage system stores data. The storage system may be able to provide high availability, security, data consistency, data protection, and/or other guarantees using the storage tier because the storage system may manage and control the storage tier. However, the storage system may be unable to provide similar guarantees, such as that data is properly stored, managed, is consistent, and is accurate, to clients for the remote object store because the storage system does not manage and control the remote object store (e.g., a third party provider may host and manage the remote object store). For example, new data could be written to a remote third party object store. When reading the new data, old data or no data could be returned by the remote third party object store due to delay. In another example, local operations such as deleting an aggregate may be quick and efficient to locally implement for the storage tier, while identifying and deleting corresponding objects within the remote third party object store may be slow and delay completion of deleting the aggregate. Thus, the storage system may be unable to provide the same level of enterprise guarantees and efficiencies when working with the remote third party object store as backend storage.